package com.parfinex.java.phase1.module2.task06;

/*
    编程实现Person类的定义
*/
public class Person {//每个字母的首字母都要大写
    // 数据类型 成员变量名 = 初始值； -其中=初始值 通常都省略不写
    String name;//用于描述姓名的成员变量
    int age;//用户描述年龄的成员变量
    String sex;
    //自定义一个成员方法，实现所有成员变量的打印
    //返回值类型 方法名称（形参列表） {方法体}
    void show(){
        System.out.println("我是"+name);
        System.out.println("我的年龄"+age);
        System.out.println("我的性别是"+sex);
        return;
    }
    void setName(String n){
       name =n;
    }
    void setAge(int a){
        age =a;
    }
    void setNameAge(String n, int a){
        name =n;
        age =a;
    }
    //自定义成员方法实现可变长参数的使用 看作一维数组使用即可
    void showArgument(int num,String... args){
        System.out.println(num);
        for (int i =0 ; i< args.length;i++){
            System.out.println("第"+(i+1)+"个参数为："+args[i]);
        }

    }
    //当成员变量由多个单词组成时，第二个字母的首字母开始要大写

    //自定义成员方法实现姓名数值的获取并返回的行为
    String getName(){
        return name;
    }
    int getAge(){
        return age;
    }
    public static void main(String[] args){
        //数据类型（类名） 引用变量名 = new 类名();
        Person p = new Person();
        //2.打印对象中的成员变量值
        //引用变量名.成员变量名
        //3.修改成员变量的数值
        p.show();
        p.name = "zhangfei";
        p.age = 30;
        p.sex ="nan";
        p.show();

        //通过成员方法的调用实现成员变理的修改
        p.setName("李佳晖");
        p.setAge(34);
        p.show();
        System.out.println("------------------------");
        p.setNameAge("黄民根", 25);
        p.show();
        System.out.println("------------------------");
        int ia =40;
        p.setNameAge("李"+"佳晖", ia);
        p.show();
        System.out.println("----------------");
        p.showArgument(0);
        p.showArgument(1,"参数1");
        p.showArgument(2,"参数1","参数2");
        // 8通过成员方法的调用实现成员变量数值的获取并打印
        String str1 =p.getName();
        int int1 = p.getAge();
        System.out.println("获取到的姓名是："+str1+",获取到的年龄是："+int1);
    }
}
